using System.Collections.Generic;
using System.Reflection;

namespace GGEditor.API
{
    public interface IPlugin
    {
        /// <summary>
        /// A short name sting
        /// </summary>
        string Name { get; }

        /// <summary>
        /// A description sting
        /// </summary>
        string Description { get; }

        /// <summary>
        /// A version sting
        /// </summary>
        string Version { get; }

        /// <summary>
        /// The author or authors of the plugin
        /// </summary>
        string Author { get; }

        /// <summary>
        /// Any relevant copyright information
        /// </summary>
        string Copyright { get; }

        /// <summary>
        /// A website related to the plugin, if applicable
        /// </summary>
        string Url { get; }

        /// <summary>
        /// All assemblies used by this plugin
        /// </summary>
        IEnumerable<Assembly> Assemblies { get; }

        /// <summary>
        /// Extensions defined by this plugin
        /// </summary>
		IEnumerable<IPluginExtension> Extensions { get; }
    }
}